This invention relates generally to computer systems and more specifically to conserving power in computer systems.
As it is known in the art the demand for low power personal computers, referred to as "green systems", has spread to all aspects of the computer market. Accordingly, system designers strive to increase the amount of work a central processor unit (CPU) can perform, while reducing the amount of energy necessary to perform that work.
Low power-consumption requirements are most noticeable in the personal computer (PC) market, where portable notebook computers comprise a growing percentage of industry sales. Since these systems run on batteries, new techniques have been developed to increase the duration of operating time between recharges. Further, power consumption methods are required in desktop systems in order to reduce unnecessary energy costs.
Several power conservation techniques currently used in the art include screen savers that completely clear the video screen, timers that shut the system off after specified periods of inactivity, circuits that switch to low voltage and low frequency operation when full computing power is not needed, circuits that spin-down disks when accesses are not imminent, and operating system instructions for informing the CPU that the system is inactive so that it can transition into a low-power consumption mode.
Instructions that inform the CPU of system inactivity are very useful for reducing system power consumption. Historically, these instructions have been used to essentially put the CPU "to sleep" by preventing it from executing instructions during inactive periods. During this sleep period, the CPU can also transition into a low power state by reducing either the voltage, the frequency or both. Accordingly, since the longer a system remains inactive the more its CPU can remain in a low power-consuming state, a portable system can operate for a greater period of time before the batteries require recharging.
One problem that frustrates power saving arises from the assertion of system interrupt signals. Typically, the assertion of a system interrupt forces a CPU to return to a normal power-consuming mode by indicating that a portion of the system is no longer inactive and requires immediate servicing. In order to service the interrupt, the CPU must transition from sleep mode into full power operation and resume executing instructions. Therefore, the assertion of system interrupt signals contributes to increased power consumption.
Some type of system interrupt is used in virtually every computer system as a means for time management operation. Time management operations refer to video screen clock applications, system instructions for software time-out conditions, and for scheduling execution of future CPU and system operations. For example, a typical time management operation is the delay of large computer printouts until after peak usage hours.
One interrupt, used for time management operation in many different system architectures, is the interval clock interrupt. Interval clock interrupts occur at periodic time intervals, for example each millisecond, and are used by the operating system to trigger system action at specified times.
However, interval clock interrupts present a problem for conserving energy in idle systems. Because the interval clock interrupts assert at a frequent periodic rate, the CPU must repeatedly awaken to service these requests. Therefore when every part of the system other than the clock is inactive for a long period of time, the CPU is still required to return from the low power operating mode in order to service the clock interrupt. As described above, the longer a system remains idle and the longer a CPU remains "asleep", the more power it will conserve. Therefore, because interval clock interrupts assert periodically, the effectiveness of being able to put a CPU into a low power-consuming state is severely decreased.
A method is therefore needed for placing a CPU in a low power operating mode for an extended period of time, without having to periodically service interval clock interrupts.